home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 2000 February / Macworld (2000-02).dmg / Updaters / WhiteCap 3.2.2.sea / WhiteCap 3.2.2 / WhiteCap Source / DrawSprocket 1.1.4 SDK / DrawSprocket Release Notes < prev    next >
Text File  |  1998-11-24  |  10KB  |  231 lines

  1. DrawSprocket 1.1.4b4
  2. Release Notes
  3. --------------------
  4.  
  5. For a detailed list of changes from the previous version, please read the
  6. change list at the end of this document.
  7.  
  8. Please report all bugs using the bug reporter on Apple Developer Connection:
  9.  
  10. <http://developer.apple.com/bugreporter/index.html>
  11.  
  12. Release Components
  13. ------------------    
  14.   DrawSprocket Release Notes                  - this file    
  15.   DrawSprocket API v1.1 ERS.pdf            - API documentation
  16.   DSp Debugging Tips                                - tips for debugging DSp programs
  17.     
  18.   Interfaces&Libraries                           - headers and link libraries
  19.  
  20.   DrawSprocketLib                                      - release version of the library
  21.   DrawSprocketDebugLib                           - debugging version of the library
  22.     
  23. WARNING: don't place both the debugging and non-debugging versions of the
  24. library in the search path or you will not be sure which version you are
  25. using.
  26.  
  27.  
  28. Dependencies
  29. ------------
  30.  
  31. DrawSprocket relies upon the Display Manager 2.0 or later.  It must be
  32. present on your system (and the end-user's system) for DrawSprocket to run.
  33.  
  34. DrawSprocket requires the latest Universal Headers -- You can find them with the
  35. latest version of your development environment, Apple's WWW and FTP sites or the
  36. developer CD ROMs.
  37.  
  38.  
  39. Compatibility with Previous Releases
  40. ------------------------------------
  41.  
  42. DrawSprocket 1.1.4 is fully compatible with previous releases of DrawSprocket.  
  43.  
  44.  
  45. Changes from 1.1.3 to 1.1.4
  46. ---------------------------
  47.  
  48. Bug Fixes:
  49.   -  Previous versions of DrawSprocket would call the Display Manager to change the display
  50.      mode even if the target mode and current mode were the same.  This would cause a
  51.      flash of gray across the screen.  This is now fixed.
  52.  
  53.   -  Previous versions of DrawSprocket would change the gamma table on some video cards,
  54.      resulting in "Custom Gamma" appearing in the Monitors and Sounds control panel.
  55.      This has been fixed.
  56.       
  57.   -  DrawSprocket now includes a ('dlgx', 128) resource so that it does not conflict with
  58.      application dialogs.
  59.  
  60.   -  If you passed in a color to DSpContext_FadeGamma with RGB values that were smaller
  61.      than the size of the table (generally 256), then DrawSprocket would fade to an incorrect
  62.      color. Additional changes were also made to support video hardware with a gamma
  63.      channel size of greater than 8 bits.
  64.  
  65.   -  A few other gamma table changes were made. This is a good place to clarify the usage
  66.      of bias colors in DSpContext_FadeGamma.
  67.       *  If you don't pass in a bias color, then the smallest valid value is 0%, which
  68.          would be all black.  100% represents the normal gamma setting of the monitor.
  69.             *  If you pass in a bias color, then -100% represents black, 0% represents the bias
  70.          color and 100% represents the normal gamma settings of the monitor.  Other values
  71.          are interpolated based on these points.  For example, 50% would be half-way between
  72.          the bias color and the regular gamma of the monitor.
  73.       *  Values above 100% are permitted, but will peg to the maximum gamma settings. 
  74.     
  75.      -  Previous versions of DrawSprocket would call SetWRefCon on a CGrafPort.
  76.       
  77.      -  If you paused a page-flipping context, there was a 50/50 chance that you'd put
  78.      DrawSprocket into a state where it would lock up within two swaps after you unpaused
  79.      the context.  This has been corrected.
  80.       
  81.      -  When you pause and resume a context, the front page's visRgn was not being reset
  82.      properly. This meant that apps using QuickDraw would no longer be able to draw to the
  83.      menubar portion of the screen after the context was resumed.  This only affected
  84.      applications using page flipping or direct access to the front buffer.
  85.       
  86.   -  Under extremely low-memory conditions, it was possible for DrawSprocket to fail to
  87.      allocate a CGrafPort, and then pass a NULL pointer to CloseCPort, causing the machine
  88.      to die an agonizing death.  While applications should be checking for low memory
  89.      conditions (see Inside Mac: Memory), DrawSprocket will no longer call CloseCPort on
  90.               a NULL pointer.
  91.       
  92.   -  If you attempted to reserve a context with a pixel depth of less than 8 bits per pixel,
  93.      DrawSprocket would calculate rowBytes improperly.
  94.       
  95.  
  96. Changes:
  97.   -  The order in which DrawSprocket will pick resolutions has been modified. If DrawSprocket
  98.      has two contexts that both meet the required attributes, this is the order in which
  99.                  DrawSprocket prioritizes its selection:
  100.       
  101.      *  Choose the context with the smallest dimensions
  102.            *  Choose a context in the preferred depth over any other depth
  103.      *  Choose a context with the smallest depth
  104.      *  Always choose a safe context on the main monitor, or the current mode on the main
  105.         monitor, over a context on any other monitor.
  106.      *  Choose a context that is the current mode of a monitor over any other context.
  107.      *  Choose a safe mode for a monitor over any unsafe mode
  108.      *  If both contexts are safe, choose the one with the higher refresh rate
  109.      *  If only one of the contexts is on the main device, choose it
  110.  
  111.     Obviously, many things on this list don't apply if you can DSpUserSelectContext, which
  112.     of course, you *should* be doing.
  113.  
  114.     -  Additional error handling code was added it to catch errors returned by the Display
  115.        Manager.
  116.  
  117.     -  Additional debug asserts were added to catch application errors.  Please test your code.
  118.  
  119.  -  GoggleSprocket is no longer a supported product.  Starting with this version of
  120.     DrawSprocket, any attempt to find or reserve a stereo context will fail with an error.
  121.     
  122.  
  123. Known Issues:
  124.  
  125.   -  DrawSprocket does not pad rowBytes, or enforce it to be any particular multiple.  
  126.      However, its blitter functions expect rowBytes to be a multiple of 8 (PPC) or 16 (68K).
  127.      If you allocate an alt-buffer, be sure to choose your bounds appropriately.
  128.       
  129.   -  DrawSprocket can mess up the location of the Application Switcher in 8.5.
  130.     
  131.   -  If you are using a 7500/7600/8500/8600 machine, you must reset the gamma whenever you
  132.      activate or deactivate the context.  Doing a gamma fade is sufficient to do this.  If
  133.      you do not do this, the color tables aren't reset properly, and the screen will be a
  134.      flat grey.  In addition, pausing a page-flip context on one of those machines will
  135.      result in the screen being filled with garbage (VRAM is reorganized).
  136.       
  137.  
  138. Changes from 1.1.2 to 1.1.3
  139. ---------------------------
  140.  
  141. Bug Fixes:
  142.     
  143.   -  DSp 1.1.2 would crash when you called the 68K versions of the blit calls.
  144.   -  Removed the load delay when DSp is starting up.  Thanx to Kent Miller for that!
  145.         
  146. Changes:
  147.     
  148.   -  You can now call DSpUserSelectContext() on a single-monitor system when you are in
  149.      debug mode.  This is so that you can test your DSpUSC() code on a single monitor system.
  150.  
  151.  
  152.  
  153. Changes from 1.1 to 1.1.2
  154. -------------------------
  155.  
  156. I just wanted to take a moment and mention the great assistance that was provided by
  157. Kirk Sumner of MacSoft and Chris Capener of Apple Computer for their assistance in
  158. this release of DrawSprocket.  Without them abusing the heck out of it I never would
  159. have found all the GetFrontBuffer and multiple monitor bugs that have been plaguing
  160. the last several release.  Gentlemen, my infinite thanx.
  161.  
  162.  
  163. Bug Fixes:
  164.  
  165.   -  there was a bug in SetCLUTEntries that would update the colors improperly
  166.      if you didn't start updating at color 0.
  167.           
  168.   -  removed an assert in the debug library that caused problems on some video
  169.      cards.
  170.  
  171.   -  there was a problem where if a context was placed on a display that did not
  172.      physically support the params, and if that display wasn't the main monitor
  173.      then QuickDraw calls wouldn't work on those buffers.  This is fixed.
  174.  
  175.   -  the new call DSpContext_GetFrontBuffer() had a bug where the CGrafPort
  176.      representation of the front-buffer was invalid if it wasn't on the main
  177.      monitor. You could write directly into the pixmap but you couldn't use
  178.      QuickDraw calls.  This is now fixed.
  179.  
  180.   -  The above fix brought out a bunch of other bugs related to multiple-monitor
  181.      usage. These are fixed as well.
  182.     
  183.   -  removed DebugStr()'s that were left in the non-debug build.
  184.         
  185.   -  A CGrafPtr was left dangling from OpenCPort(), causing crashes on some systems
  186.      (when used with OpenDoc, most noticeably).
  187.           
  188.   -  a page swap queued immediately before a context pause or inactivation would
  189.      still occur after the state change.  Now all pending swaps are completed before
  190.      the state change.
  191.           
  192.   -  requesting an alt buffer with rowbytes == width would not work correctly if the
  193.      width was smaller than the display width.
  194.          
  195.         -  fixed some null-pointer dereferences.
  196.         
  197.         -  the rightmost portion of the menu bar was not being re-added to
  198.            the gray region after a context deactivation, when the context resolution
  199.            was smaller than the desktop resolution.  The control strip sometimes went
  200.            under the menu bar on context deactivation because of this.
  201.         
  202.         -  duplicate buffer release when closing down a page flipped context.
  203.         
  204.         -  was not correctly disposing of alt buffers, causing duplicate
  205.            releases.
  206.  
  207.         -  fixed a bug where invalidating the entire underlay buffer only redrew the
  208.            back buffer's dirty rects instead of the entire buffer.
  209.         
  210.         -  there was an anomalous condition involved with setting a page count of 1 and
  211.            page-flipping active on machines that have page-flipping.  In essence, you'd
  212.            always be waiting for page 0 to become free and it never would.  If you have
  213.            the page-flipping bit turned on and the hardware supports it the page-count
  214.            will now always be set to a minimum of two.
  215.         
  216. Changes:
  217.  
  218.         -  DrawSprocket is now weak-linked against the Display Manager.  If DM is
  219.            not present DrawSprocket _will_ load but the call to DSpStartup() will fail
  220.            and return an error code.
  221.     
  222.         -  removed some timing code in the slot VBL task to improve
  223.            performance that was degraded in 1.1.
  224.           
  225.         -  Several changes to the user select context dialog.  You can now double-click
  226.            on the rect for a monitor to select it and continue.  You can now hit ESC, or
  227.            Command-period to cancel.  You can also hit tab or space to cycle through the
  228.            monitors.
  229.           
  230.         -  New call - DSpContext_GetFrontBuffer().  This gives you a CGrafPtr to access the
  231.            front buffer of your DSp context.  This was previously a private call.